$(function () {

    /**
     * 加载左侧菜单
     */
    $.post("data/menus.json", function (rdata) {
        var html = createMenuTree(rdata.data, 0);
        $("#side-nav").html(html.replace('<ul class="sub-menu">', '<ul id="nav">'));
    }, "json");

    /**
     * 根据id, parentid组装菜单
     * @param list
     * @param parentid
     * @returns {string}
     */
    function createMenuTree(list, parentid) {
        var str = '<ul class="sub-menu">';
        for (var i = 0; i < list.length; i++) {
            var d = list[i];
            if (d.parentid === parentid) {
                var href = d.murl ? '_href="' + d.murl + '"' : 'href="javascript:;"';
                str += '<li><a ' + href + '><cite><i class="' + d.icon + ' fa-fw fa-lg"></i> ' + d.menuname + '</cite>';
                if (hasChildren(d.ids, list)) {
                    str += '<i class="fa fa-angle-right nav_right"></i>';
                }
                str += '</a>';
                if (hasChildren(d.ids, list)) {
                    str += createMenuTree(list, d.ids);
                }
                str += '</li>';
            }
        }
        str += '</ul>';
        return str;
    }

    /**
     * 判断有没有子菜单
     * @param parentid
     * @param list
     * @returns {boolean}
     */
    function hasChildren(parentid, list) {
        if (list.length && list.length > 0) {
            for (var i = 0; i < list.length; i++) {
                if (list[i].parentid === parentid) {
                    return true;
                }
            }
        }
        return false;
    }

    // 左侧菜单效果
    // $('#content').bind("click",function(event){
    $('.left-nav').on("click", "#nav li", function (event) {

        if ($(this).children('.sub-menu').length) {
            if ($(this).hasClass('open')) {
                $(this).removeClass('open');
                $(this).find('.nav_right').removeClass("fa-angle-down").addClass("fa-angle-left");
                $(this).children('.sub-menu').stop().slideUp("fast");
                $(this).siblings().children('.sub-menu').slideUp("fast");
            } else {
                $(this).addClass('open');
                $(this).children('a').find('.nav_right').removeClass("fa-angle-left").addClass("fa-angle-down");
                $(this).children('.sub-menu').stop().slideDown("fast");
                $(this).siblings().children('.sub-menu').stop().slideUp("fast");
                $(this).siblings().find('.nav_right').removeClass("fa-angle-down").addClass("fa-angle-left");
                $(this).siblings().removeClass('open');
            }
        } else {

            var url = $(this).children('a').attr('_href');
            var title = $(this).find('cite').html();
            var index = $('.left-nav #nav li').index($(this));

            for (var i = 0; i < $('.x-iframe').length; i++) {
                if ($('.x-iframe').eq(i).attr('tab-id') == index + 1) {
                    tab.tabChange(index + 1);
                    event.stopPropagation();
                    return;
                }
            }

            tab.tabAdd(title, url, index + 1);
            tab.tabChange(index + 1);
        }
        event.stopPropagation();
    });
});